package com.ygxsk.carhome.ui.adapter;

import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.blankj.utilcode.util.StringUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.flyco.roundview.RoundTextView;
import com.tencent.mmkv.MMKV;
import com.ygxsk.carhome.R;
import com.ygxsk.carhome.constant.ConstantSign;
import com.ygxsk.carhome.constant.ExtraValue;
import com.ygxsk.carhome.response.CouponCustomerVo;
import com.ygxsk.carhome.utils.CommUtils;
import com.ygxsk.carhome.utils.StringCodeUtils;
import com.ygxsk.integrated.retrofit.Parameterkey;

import java.math.BigDecimal;
import java.util.List;

/*
 * @Author:itchenqi175@163.com
 * @Time:2023-07-17  16:07
 * @Description:车辆智能出门，出门卡券发放的适配器。
 *
 * 智能出门主页列表，智能出门的【更多】历史列表，这个和【核销列表】不是一个适配器；
 * *
 */
public class CardMainBottomAdapter extends BaseQuickAdapter<CouponCustomerVo, BaseViewHolder> {

    private int flag_jumpfrom_where;

//    public CardMainBottomAdapter(int layoutResId) {
//        super(layoutResId);
//    }

    public CardMainBottomAdapter(int _flag_jumpfrom_where, int layoutResId, @Nullable List<CouponCustomerVo> data) {
        super(layoutResId, data);

        flag_jumpfrom_where = _flag_jumpfrom_where;

        //2024-1-2 09:38:51 新增批量审核按钮
        addChildClickViewIds(R.id.textvieweditviewphonecarsmart, //
//                R.id.constraintlayoutoutsideitem,//外侧水波纹
                R.id.roundtextViewDoVerifyOne, //
                R.id.roundtextViewDoVerifyMoreItems, //
                R.id.imagerightinfoclick,//
                R.id.textviewcarsendreason//
        );

    }

    @Override
    protected void convert(@NonNull BaseViewHolder baseViewHolder, CouponCustomerVo couponCustomerVo) {

        if (couponCustomerVo != null) {

//            备注:重要需求：
//            couponPackId  发放优惠券记录 增加了 礼包ID，  礼包ID >0 是属于礼包里发放的  ， 选择批量审核的批量  请求这个接口，返回 该礼包下的 待审核的优惠券  来批量审核礼包优惠券

            //卡券的名称：
            String couponName = couponCustomerVo.getCouponName();
            //核销状态 :是汉字形式的;
            String stateItem = couponCustomerVo.getCouponStatusInfo();
            //卡券类型
            String couponTypeInfo = couponCustomerVo.getCouponTypeInfo();

            //使用条件
            String couponLowAmountInfo = couponCustomerVo.getCouponLowAmountInfo();
            //领取客户--姓名
            String userName = couponCustomerVo.getUserName();
            //领取客户--手机号
            String phone = couponCustomerVo.getPhone();
            //发放时间
            String time = couponCustomerVo.getCreateTime();
            //卡券描述
            String couponDetail = couponCustomerVo.getCouponDetail();

            //测试效果代码
//            String couponDetail = "优惠券仅限在线支付时使用，登录即可使用，使用优惠券的账号需为领取时使用的账号。\n" +
//                    "每次付费制作仅限使用一张，优惠券不找零。\n" +
//                    "每个优惠券只能使用一次，不能叠加或者拆分使用。\n" +
//                    "优惠券必须在使用期限内使用，过期失效。\n" +
//                    "优惠券如果有使用门槛，则每次制作消费金额需满足金额门槛时才能使用。\n" +
//                    "每次付费制作仅限使用一张，优惠券不找零，如优惠券可抵扣金额大于需支付金额，则订单需支付0.01元。";
            //是否有发送原因
            String explain = couponCustomerVo.getExplain();
            //测试效果代码
//            String explain = "支付过程中，优惠券会锁定5分钟，支付超时或失败会自动退回到账号";

            //---------------------------------------------------------------------------------------------
            //优惠金额 2024年2月18日11:55:58
            BigDecimal couponAmount = couponCustomerVo.getCouponAmount();

            String couponAmountResult = "";

            if (couponAmount != null) {
                couponAmountResult = couponAmount.toString();
            } else {
                couponAmountResult = CommUtils.formatComma2BigDecimal(Parameterkey.BIGDECIMAL_ZERO).toString();
            }
            //---------------------------------------------------------------------------------------------


            //findviews
            //卡券的名称
            TextView textViewCarName = (TextView) baseViewHolder.getView(R.id.textviewcarname);
            //该车辆 使用卡券的状态:其实主要的是核销状态
            TextView textViewCarSmartState = (TextView) baseViewHolder.getView(R.id.textviewcarsmartstate);
            //卡券类型
            TextView textViewCardType = (TextView) baseViewHolder.getView(R.id.textviewcardtype);
            //卡券使用条件
            TextView textViewCardUserKonw = (TextView) baseViewHolder.getView(R.id.textviewcarduserkonw);
            //领取卡券的用户的名称
            TextView textViewPerosonNameCarSmart = (TextView) baseViewHolder.getView(R.id.textviewperosonnamecarsmart);
            //手机号
            TextView textViewEditViewPhoneCarSmart = (TextView) baseViewHolder.getView(R.id.textvieweditviewphonecarsmart);
            //卡券描述
            TextView textViewCardDesInfo = (TextView) baseViewHolder.getView(R.id.textviewcarddesinfo);
            //卡券发放的时间
            TextView textViewSmartTime = (TextView) baseViewHolder.getView(R.id.textviewcarsmarttime);
            //优惠金额 2024-2-18 13:36:20要求新增的需求：
            TextView textViewCouponAmount = (TextView) baseViewHolder.getView(R.id.textviewcouponAmount);

            //发送优惠券的原因:如果原因不是空，那么原因整体布局展示。
            RelativeLayout relativeLayoutReasonInfo = (RelativeLayout) baseViewHolder.getView(R.id.relativelayoutreasoninfo);
            //填充真实的发送优惠券的原因
            TextView textViewCarSendReason = (TextView) baseViewHolder.getView(R.id.textviewcarsendreason);
            //右侧可以点击的详情布局
            ImageView imageRightInfoClick = (ImageView) baseViewHolder.getView(R.id.imagerightinfoclick);


            //----------------------------------------------------------------------------------------------------------

            //2024-1-2 09:39:26 多个审核布局包裹,批量审核
            LinearLayout linearLayoutRoundMoreItems = (LinearLayout) baseViewHolder.getView(R.id.linearLayoutroundMoreItems);
            //审核按钮：
//            RoundTextView roundtextViewDoVerifyOne = (RoundTextView) baseViewHolder.getView(R.id.roundtextViewDoVerifyOne);
            //批量审核按钮
            RoundTextView roundtextViewDoVerifyMoreItems = (RoundTextView) baseViewHolder.getView(R.id.roundtextViewDoVerifyMoreItems);

            //帮助线条，如果是最后一个线条，布局隐藏
//            TextView textViewHelpInSmartList = (TextView) baseViewHolder.getView(R.id.textviewhelpinsmartlist);

            //----------------------------------------------------------------------------------------------------------

            CommUtils.setText(textViewCarName, couponName);
            CommUtils.setText(textViewCarSmartState, stateItem);

            //卡券类型
            CommUtils.setText(textViewCardType, couponTypeInfo);
            //卡券的优惠金额
//            CommUtils.setText(textViewCouponAmount,couponAmountResult);
            CommUtils.setText(textViewCouponAmount, MMKV.defaultMMKV().decodeString(ConstantSign.P_CURRENCYSYMBOL) + couponAmountResult + StringUtils.getString(R.string.unitmoney));
            //使用条件
            CommUtils.setText(textViewCardUserKonw, couponLowAmountInfo);
            //领取客户-姓名
            CommUtils.setText(textViewPerosonNameCarSmart, userName);
//            CommUtils.setText(textViewEditViewPhoneCarSmart, phone);
            CommUtils.setText(textViewEditViewPhoneCarSmart, StringCodeUtils.mobileEncrypt(phone));

            //卡券发放时间
            CommUtils.setText(textViewSmartTime, time);
            //卡券描述
            CommUtils.setText(textViewCardDesInfo, couponDetail);

            //------------------------------------------------------------

            if (flag_jumpfrom_where == ExtraValue.VALUE_JUMP_FORM_RICE_TICKET_OUT_ACTIVITY) {

                //餐券过来的没有原因字段等，不执行任何操作 对【原因】这块
                //【发放原因】隐藏
                CommUtils.setViewGone(relativeLayoutReasonInfo);

            } else if (flag_jumpfrom_where == ExtraValue.VALUE_JUMP_FORM_CARD_MAIN_ACTIVITY) {

                //【发放原因】展开
                CommUtils.setViewVisible(relativeLayoutReasonInfo);

                //如果需要审核，那么审核按钮显示：
                //是否可以审核（权限）1是0否
                //private Integer isExamine;
                int isExamine = couponCustomerVo.getIsExamine();

                //默认是展示的
//            int currentPosition = getItemPosition(couponCustomerVo);
//            if (currentPosition == getData().size() - 1) {
//                textViewHelpInSmartList.setVisibility(View.GONE);
//            } else {
//                textViewHelpInSmartList.setVisibility(View.VISIBLE);
//            }

                //是否是大礼包类型的，大礼包类型。
                int couponPackId = couponCustomerVo.getCouponPackId();
                if (isExamine == 0) {
                    linearLayoutRoundMoreItems.setVisibility(View.INVISIBLE);
                } else if (isExamine == 1) {
                    linearLayoutRoundMoreItems.setVisibility(View.VISIBLE);

                    //如果是大礼包类型，大礼包名下的优惠券，那么展示【批量审核】，如果是普通类型优惠券就仅仅展示【审核】
                    //couponPackId  发放优惠券记录 增加了 礼包ID，  礼包ID >0 是属于礼包里发放的  ， 选择批量审核的批量  请求这个接口，返回 该礼包下的 待审核的优惠券  来批量审核礼包优惠券
                    if (couponPackId > 0) {
                        //礼包ID >0 是属于礼包里发放的
                        CommUtils.setViewVisible(roundtextViewDoVerifyMoreItems);
                    } else {
                        CommUtils.setViewGone(roundtextViewDoVerifyMoreItems);
                    }

                } else {
                    linearLayoutRoundMoreItems.setVisibility(View.INVISIBLE);
                }


                //------------------------------------------------------------

//            if (!TextUtils.isEmpty(explain)) {
//                CommUtils.setViewVisible(relativeLayoutReasonInfo);
//                CommUtils.setText(textViewCarSendReason, explain);
//            } else {
//                CommUtils.setViewGone(relativeLayoutReasonInfo);
//            }

                CommUtils.setText(textViewCarSendReason, explain);

                if (!TextUtils.isEmpty(explain)) {
                    CommUtils.setViewVisible(imageRightInfoClick);
                } else {
                    CommUtils.setViewGone(imageRightInfoClick);
                }

            }

            //------------------------------------------------------------

        }
    }
}
